-
Notifications
You must be signed in to change notification settings - Fork 12.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JSX and as
operator
#3564
JSX and as
operator
#3564
Conversation
@@ -159,6 +164,14 @@ namespace ts { | |||
} | |||
}; | |||
|
|||
let JsxNames = { | |||
JSX: 'JSX', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Double quotes on these.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✔️
@ctolkien just pushed @RyanCavanaugh love at first sight 🌹 |
@basarat nice :) |
This is great! Really excited to be able to use JSX in TypeScript. Not sure where best to voice this, so I'll mention it here -- is it a concern that the semantics of The Facebook devs working on Flow chose to deal with casts by reusing the colon notation, e.g.: var foo: bar = {}: bar The type annotations used between Flow and TypeScript are very similar otherwise, I'd love to see the similarities grow where possible to potentially improve the odds of ECMAScript standardization as well as tool interoperability. |
TypeScript already has many keywords/oprators that are the same as in other languages; adding one more isn't particularly interesting IMHO. Because none of our type-related syntax has runtime semantics, it shouldn't be too confusing that The flow-style assertion was discussed briefly at #3203 (comment). I'd also try to chime in at issue #296 for further discussion if you're interested. |
Is it possible to emit react elements as defined in https://facebook.github.io/react/blog/2014/10/14/introducing-react-elements.html under "Third-party Languages" instead of |
You can use We'll be looking at what kind of JSX emit people find the most useful to see if it's worth the cost to add them to TypeScript directly. |
Ok. There should be at least a compiler error if TypeScript emits |
Yeah...such a pragma is nice. Other places where JSX is used outside of React:
|
Does this mean Facebook is joining the TypeScript ecosystem along with Google? |
Thanks for the list! Keep it coming -- it's good for us to understand what other JSX transforms we might need to support.
No 😞 |
Pretty cool that the atom editor is already integrated with this. Does anyone have any advice for getting visual studio to use the 1.6 compiler? |
you can enable DevMode and get VS to work on the latest drops from master. |
Thanks @mhegazy - I tried that but I'm finding visual studio is still not doing syntax highlighting on my tsx files and is complaining when I refer to them from .ts files. Would you expect DevMode to resolve that issue? |
@mikemorton unfortunately not. DevMode updates the TypeScript portion of the language service but things like how we understand/interpret file type associations live in the part of Visual Studio code that needs to be installed via a published update. You could also try Atom's TypeScript plugin today. |
Does anyone working on this have any idea on how I could get this to work with Mithril? |
@FremyCompany I would try StackOverflow, comments on PRs should really be specifically about the change and any implementation issues |
@danquirk Thanks I'll wait for 1.6 to be more broadly supported and head towards StackOverflow at that time. I delete my comment feel free to do the same. |
This implements JSX parsing, typechecking, JSX emit, and React emit as specified in #3203, as well as the
as
operator suggested in #296.Each commit between 556cb70 and a5c44a3 contains a disjoint set of files for easier browsing. Commits after the
Baseline-accept
commit will be touching arbitrary files.